home *** CD-ROM | disk | FTP | other *** search
- #ifndef _SIOPD_H
- #define _SIOPD_H
-
- #ifndef _SIDEFS_H
- # include <sidefs.h>
- #endif
-
- #define OPD_HASH_MAX (16)
-
- typedef struct /* キー情報設定用構造体 */
- {
- CONST char *sKey;
- int typ;
- int (*func)(); /* 処理関数 */
- int typVar; /* 変数タイプ */
- void *ptrVar; /* 変数のポインタ */
- void *ptrWork; /* ワークポインタ */
- } OPDKEYPARA_T;
-
- typedef struct _opdkey_t /* キー情報構造体 */
- {
- struct _opdkey_t *next;
- char *sKey;
- int typ;
- int (*func)(); /* 処理関数 */
- int typVar; /* 変数のタイプ */
- void *ptrVar; /* 変数のポインタ */
- void *ptrWork; /* ワークポインタ */
- } OPDKEY_T;
-
- typedef SINAMLST_T OPDPARA_T;
-
- typedef struct _opd_t
- {
- unsigned int att;
- unsigned int stt;
- char *sSwitch; /* スイッチャー */
-
- int (*funcStrcmp)(CONST char *,CONST char *);
- int (*funcError)(struct _opd_t *opd,CONST char *);
- int (*funcPara)(struct _opd_t *opd,CONST char *s);
-
- int numKey; /* 登録キーの数 */
- OPDKEY_T *keyTbl[OPD_HASH_MAX];
- OPDKEY_T *keyLast; /* 最後に処理したキー */
-
- int numPara; /* パラメータ数 */
- OPDPARA_T *paraTop;
- OPDPARA_T *paraLast;
-
- int numErr; /* エラー数 */
- char *errmsg; /* エラーメッセージ */
- } OPD_T;
-
- #define OPDVAR_CHAR (1)
- #define OPDVAR_SHORT (2)
- #define OPDVAR_INT (3)
- #define OPDVAR_LONG (4)
- #define OPDVAR_FLOAT (5)
- #define OPDVAR_DOUBLE (6)
- #define OPDVAR_NAMEBUF (8)
- #define OPDVAR_NAMEHEEP (9)
-
- #define OPDERR_RETURN (-1)
- #define OPDERR_IGNORE (0)
-
- /*----------------------------------------------------------------------*/
- typedef struct
- {
- int def; /* デフォルト値 */
- int min; /* 最小値 */
- int max; /* 最大値 */
- } OPDNUMI_T;
-
- /*----------------------------------------------------------------------*/
- typedef struct _opdselmdat_t
- {
- struct _opdselmdat_t *next;
- char *name;
- int ret;
- } OPDSELMDAT_T;
-
- typedef struct
- {
- int def; /* デフォルト */
- int numDat;
- OPDSELMDAT_T *datTbl[OPD_HASH_MAX];
- } OPDSELM_T;
-
- /*----------------------------------------------------------------------*/
- typedef struct
- {
- CONST char *name;
- int ret;
- } OPDSELNDAT_T;
-
- typedef struct
- {
- int def; /* デフォルト値 */
- int numDat;
- OPDSELNDAT_T *datAry;
- } OPDSELN_T;
-
- /*----------------------------------------------------------------------*/
- typedef struct
- {
- CONST char *def; /* デフォルト文字列 */
- int len; /* バッファの長さ */
- } OPDNAMEBUF_T;
-
- /*----------------------------------------------------------------------*/
- typedef struct
- {
- int numList;
- OPDPARA_T *listTop;
- OPDPARA_T *listLast;
- } OPDNAMELIST_T;
-
- /*----------------------------------------------------------------------*/
- extern OPD_T *OPD_open(unsigned int att);
- extern void OPD_close(OPD_T *opd);
- extern OPDKEY_T *OPD_getKey( OPD_T *opd, CONST char *sKey );
- extern int OPD_setKey( OPD_T *opd, OPDKEYPARA_T *para );
- extern int OPD_chkSwitcher( OPD_T *opd, int ch);
- extern int OpdSetValue( int typ, void *ptr, ... );
- extern int OPD_deocde( OPD_T *opd, int argc, char **argv );
- extern int OPD_setPara( OPD_T *opd, CONST char *s );
- extern void OPD_errmsg( OPD_T *opd, CONST char *form, ... );
-
-
- extern int OpdFuncFlag( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OpdFuncNum( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OpdFuncNumi( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OpdFuncSeln( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OPD_setSelmDat( OPD_T *opd, OPDSELM_T *selm, int ret, CONST char *name );
- extern int OpdFuncSelm( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OpdFuncNamebuf( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
-
- extern int OPD_setNamelist( OPD_T *opd, OPDNAMELIST_T *namelist, CONST char *s );
- extern int OpdFuncNamelist( OPD_T *opd, OPDKEY_T *key, int argc, char **argv, int *pos);
- /*----------------------------------------------------------------------*/
-
-
-
- #endif
-